#include "../terra-ge.h"

#ifndef TERRAGE_LIGHT_H_INCLUDED
#define TERRAGE_LIGHT_H_INCLUDED

namespace TerraGE {
    enum {
        LIGHT_POINT,
        LIGHT_DIRECTIONAL
    };

    class Light {
        protected:
            float x, y, z;
            int type;
            float r, g, b;
            float range;
            float strength;
            float ambience;
        public:
            Light() {}
            Light(float tx, float ty, float tz, float tra=300, float tr=1.0, float tg=1.0, float tb=1.0, int tp=LIGHT_POINT);

            float Get_X() {return x;}
            void Set_X(float v) {x=v;}

            float Get_Y() {return y;}
            void Set_Y(float v) {y=v;}

            float Get_Z() {return z;}
            void Set_Z(float v) {z=v;}

            float Get_R() {return r;}
            void Set_R(float v) {r=v;}

            float Get_G() {return g;}
            void Set_G(float v) {g=v;}

            float Get_B() {return b;}
            void Set_B(float v) {b=v;}

            int Get_Type() {return type;}
            void Set_Type(int v) {type=v;}

            float Get_Range() {return range;}
            void Set_Range(float v) {range=v;}

            float Get_Ambience() {return ambience;}
            void Set_Ambience(float v) {ambience=v;}

            float Get_Strength() {return strength;}
            void Set_Strength(float v) {strength=v;}

            void Normalize();

            void Update(float timestep);
    };
};


#endif
